home *** CD-ROM | disk | FTP | other *** search
- /*
- File: EveryItemProxy.h
-
- Contains: Proxy token for 'every item of...'
-
- Written by: Greg Anderson
-
- Copyright: © 1993-1995 by Apple Computer, Inc., all rights reserved.
-
- <8> 9/18/95 ga
- */
-
- #ifndef __EVERYITEMPROXY__
- #define __EVERYITEMPROXY__
- #define EveryItemProxy_h
-
- //
- // ProxyToken.h is needed because
- // TProxyToken is the base class of TEveryItemProxy
- //
- #include "ProxyToken.h"
-
- //
- // AbstractIterator is needed because TAbstractIterator
- // is the base class of TEveryElementOfClassIterator
- //
- #include "AbstractIterator.h"
-
- class TEveryItemProxy : public TProxyToken
- {
- public:
- DeclareSmallClassData(TEveryItemProxy, TProxyToken);
-
- TEveryItemProxy();
- virtual ~TEveryItemProxy();
-
- void IEveryItemProxy(TAbstractScriptableObject* objectOfDesignation, DescType desiredClass = typeWildCard);
-
- virtual Boolean DerivedFromOSLClass(const TAETransaction& t, DescType objectClass);
-
- virtual TAbstractObjectIterator* DirectObjectIterator(const TAETransaction&);
- // ◊Script: we need an ElementIterator also
-
- protected:
- DescType fDesiredClass;
- };
-
-
- //========================================================================================
- // Class TEveryElementOfClassIterator
- //========================================================================================
- class TEveryElementOfClassIterator : public TAbstractObjectIterator
- {
- private:
- TAbstractObjectIterator* fIter;
- DescType fDesiredClass;
-
- virtual ~TEveryElementOfClassIterator();
-
- public:
- TEveryElementOfClassIterator(DescType desiredClass, TAbstractObjectIterator* iter) :
- fDesiredClass(desiredClass),
- fIter(iter) {}
-
- //
- // Interface to code to:
- //
- virtual void Reset(const TAETransaction& t, Boolean iterationDirection = kForwardIteration);
- virtual Boolean More(const TAETransaction&) const;
- virtual void Next(const TAETransaction&);
- virtual TAbstractScriptableObject* Current(const TAETransaction&);
-
- //
- // Performance enhancement:
- //
- virtual Boolean CurrentDerivedFromOSLClass(const TAETransaction& t, DescType objectClass);
- virtual long CountElements(const TAETransaction& t, DescType desiredClass);
- virtual TAbstractScriptableObject* GetIndexedElement(const TAETransaction& t, DescType desiredClass, long index);
- virtual TAbstractScriptableObject* GetNamedElement(const TAETransaction& t, DescType desiredClass, TDescriptor nameDesc);
- virtual Boolean Contains(const TAETransaction& t, TAbstractScriptableObject* objectToTestForMembership);
-
- virtual void SearchDeep(const TAETransaction& t, TAbstractCollector* collector, DescType desiredClass, TAbstractSearchSpec* searchSpec);
-
- private:
- //
- // What is the desired type that we should use?
- //
- DescType DetermineAccessClass(DescType desiredClass);
- };
-
- #endif
-